package com.loong.config;

import org.springframework.security.crypto.password.PasswordEncoder;

/**
 * 自定义密码编码器类
 * 实现了PasswordEncoder接口，用于对密码进行编码和匹配
 * 本类的目的是为了处理密码的编码和验证逻辑
 */
public class MyPasswordEncoder implements PasswordEncoder {

    /**
     * 对原始密码进行编码
     * 此方法直接返回原始密码的字符串形式，未进行任何实际的编码处理
     *
     * @param rawPassword 原始密码，作为输入序列
     * @return 原始密码的字符串表示，此处并未进行编码
     */
    @Override
    public String encode(CharSequence rawPassword) {
        return rawPassword.toString();
    }

    /**
     * 检查原始密码与编码后的密码是否匹配
     * 此方法通过将原始密码编码后与给定的编码密码比较来验证密码的正确性
     *
     * @param rawPassword 原始密码，作为输入序列
     * @param encodedPassword 编码后的密码，用于与原始密码的编码结果进行比较
     * @return 如果原始密码的编码结果与编码密码相同，则返回true，否则返回false
     */
    @Override
    public boolean matches(CharSequence rawPassword, String encodedPassword) {
        return encode(rawPassword).equals(encodedPassword);
    }
}
